V_TERMINAL
Overview
Calculate terminal velocity of a falling sphere using drag coefficient correlations.
Excel Usage
=V_TERMINAL(D, rhop, rho, mu, vt_method)
D(float, required): Diameter of the sphere [m]rhop(float, required): Particle density [kg/m^3]rho(float, required): Density of the surrounding fluid [kg/m^3]mu(float, required): Viscosity of the surrounding fluid [Pa*s]vt_method(str, optional, default: “Auto”): Drag coefficient method to use
Returns (float): Terminal velocity of falling sphere [m/s], or error message (str) if input is invalid.
Examples
Example 1: Small particle (70 micron) falling in water
Inputs:
| D | rhop | rho | mu |
|---|---|---|---|
| 0.00007 | 2600 | 1000 | 0.001 |
Excel formula:
=V_TERMINAL(0.00007, 2600, 1000, 0.001)
Expected output:
| Result |
|---|
| 0.0041 |
Example 2: Sand particle falling in air
Inputs:
| D | rhop | rho | mu |
|---|---|---|---|
| 0.0001 | 2500 | 1.2 | 0.0000178 |
Excel formula:
=V_TERMINAL(0.0001, 2500, 1.2, 0.0000178)
Expected output:
| Result |
|---|
| 0.5557 |
Example 3: Larger particle in water
Inputs:
| D | rhop | rho | mu |
|---|---|---|---|
| 0.001 | 2200 | 1000 | 0.001 |
Excel formula:
=V_TERMINAL(0.001, 2200, 1000, 0.001)
Expected output:
| Result |
|---|
| 0.1289 |
Example 4: Using Morrison method
Inputs:
| D | rhop | rho | mu | vt_method |
|---|---|---|---|---|
| 0.0001 | 2500 | 1.2 | 0.0000178 | Morrison |
Excel formula:
=V_TERMINAL(0.0001, 2500, 1.2, 0.0000178, "Morrison")
Expected output:
| Result |
|---|
| 0.6128 |
Python Code
import micropip
await micropip.install(["fluids"])
from fluids.drag import v_terminal as fluids_v_terminal
def v_terminal(D, rhop, rho, mu, vt_method='Auto'):
"""
Calculate terminal velocity of a falling sphere using drag coefficient correlations.
See: https://fluids.readthedocs.io/fluids.drag.html#fluids.drag.v_terminal
This example function is provided as-is without any representation of accuracy.
Args:
D (float): Diameter of the sphere [m]
rhop (float): Particle density [kg/m^3]
rho (float): Density of the surrounding fluid [kg/m^3]
mu (float): Viscosity of the surrounding fluid [Pa*s]
vt_method (str, optional): Drag coefficient method to use Valid options: Auto, Stokes, Barati, Morrison. Default is 'Auto'.
Returns:
float: Terminal velocity of falling sphere [m/s], or error message (str) if input is invalid.
"""
# Validate inputs
try:
D = float(D)
rhop = float(rhop)
rho = float(rho)
mu = float(mu)
except (ValueError, TypeError):
return "Error: All parameters must be numbers."
if D <= 0:
return "Error: Diameter must be positive."
if rhop <= 0:
return "Error: Particle density must be positive."
if rho <= 0:
return "Error: Fluid density must be positive."
if mu <= 0:
return "Error: Viscosity must be positive."
# Handle method selection
method = None if vt_method == "Auto" else vt_method
try:
result = fluids_v_terminal(D=D, rhop=rhop, rho=rho, mu=mu, Method=method)
if result != result: # NaN check
return "Calculation resulted in NaN."
return float(result)
except Exception as e:
return f"Error: {str(e)}"